Virtual machines are widely utilized for both consumer and enterprise applications. Consumers prefer virtual machines because they offer a secure and simple alternative to local customized installations, which may prove technically demanding or vulnerable to malicious software. Administrators often opt to deploy virtual machines due to their scalability, security, and platform-agnostic accessibility.
Like traditional computing platforms, the operating systems of virtual machines often utilize one or more memory-management schemes (e.g., paging). These memory-management schemes allow an operating system to use secondary-storage (e.g., a hard disk) to store data that would otherwise occupy space in memory (e.g., RAM). Many modern operating systems extensively leverage one or more memory-management schemes.
In the context of virtual machines, the extensive use of memory-management schemes has implications. For example, a memory-management scheme may utilize one or more files to store data and/or pointers (e.g., addresses) to data temporarily stored elsewhere. Migrating a virtual machine (e.g., to achieve one or more load balancing goals) may or may not require copying a portion of this data from one set of resources to another. If unnecessary copying is performed, critical resources (e.g., time) may be needlessly consumed.
Accordingly, a need exists for optimized virtual machine migration.